home *** CD-ROM | disk | FTP | other *** search
- ' +----------------------------------------------------------------------+
- ' | |
- ' | PBClone Copyright (c) 1990-1993 Thomas G. Hanlin III |
- ' | |
- ' +----------------------------------------------------------------------+
-
- SUB BinSeekI (Array%(), Elements%, Target%, Posn%)
- IF Elements% = 0 THEN
- Posn% = -1
- ELSE
- Top% = 1
- Bottom% = Elements% + 1
- OldPlace% = Bottom%
- DO
- Place% = (Top% + Bottom%) \ 2
- IF Place% = OldPlace% THEN
- NotThere% = -1
- ELSEIF Array%(Place%) = Target% THEN
- Found% = -1
- ELSEIF Array%(Place%) > Target% THEN
- Bottom% = Place%
- ELSE
- Top% = Place%
- END IF
- OldPlace% = Place%
- LOOP UNTIL Found% OR NotThere%
- IF NotThere% THEN
- IF Elements% = UBOUND(Array%) THEN
- Posn% = 0
- ELSE
- IF Target% > Array%(Place%) THEN Place% = Place% + 1
- Posn% = -Place%
- END IF
- ELSE
- Posn% = Place%
- END IF
- END IF
- END SUB
-